chore: bump leanVM to 8fcbd779 and leanSpec to latest main#408
chore: bump leanVM to 8fcbd779 and leanSpec to latest main#408MegaRedHand wants to merge 7 commits into
Conversation
Bump the multisig dependency to commit 0520822 and switch the git remote from the renamed leanMultisig repo to leanVM. Pin transitive Plonky3 to 3f67d136 (the rev leanVM 0520822 locks against); the floating Plonky3 HEAD pulled in a newer rev that requires the unstable maybe_uninit_slice feature and fails to build on stable.
🤖 Kimi Code ReviewSecurity Critical: Dependency Downgrades Detected This PR migrates dependencies from 1. Critical:
|
🤖 Claude Code ReviewHere is the full review: PR #408 Review: chore: bump leanVM to 8fcbd779 and leanSpec to latest mainThis is a focused dependency bump with a clear, well-documented rationale. The overall approach is sound. A few things worth noting: CorrectnessThe core alignment goal — pinning both The Dependency version notesThe lock file now contains two coexisting versions of
Stable-Rust build fixPinning Plonky3 to MinorThe trailing newline removal in The comment update in What to verify before merge
SummaryThe change is correct and well-scoped. The pinning strategy (matching leanVM rev to what leanSpec uses, pinning Plonky3 to avoid nightly requirements) is the right approach. No correctness or security issues found. Automated review by Claude (Anthropic) · sonnet · custom prompt |
🤖 Codex Code ReviewFindings
No direct local Rust/style issues stood out beyond those two concerns. I couldn’t run Automated review by OpenAI Codex · gpt-5.4 · custom prompt |
Greptile SummaryThis PR bumps the
Confidence Score: 5/5Safe to merge — all changes are dependency version pins with no logic modifications. The PR makes no changes to application logic, only updates dependency sources and commit hashes. The Cargo.lock reflects exactly what the description promises: leanVM repo rename, Plonky3 stable-Rust pin, and cascading transitive updates. The Makefile hash bump aligns leanSpec with the same prover/verifier revision, which is the intended pairing. No files require special attention. The Cargo.lock is the most complex file but all changes are machine-generated and consistent with the declared intent.
|
| Filename | Overview |
|---|---|
| crates/common/crypto/Cargo.toml | Updated lean-multisig and leansig_wrapper git sources from the renamed leanMultisig repo to leanVM at rev 8fcbd779; no structural changes. |
| crates/common/crypto/src/lib.rs | Comment-only change updating 'leanMultisig' to 'leanVM' to reflect the upstream repository rename. |
| Makefile | Bumps LEAN_SPEC_COMMIT_HASH from 825bec6b (2026-05-21) to 30ffb6ca (2026-06-03), aligning leanSpec with the rev that ships lean-multisig-py v0.0.6. |
| Cargo.toml | Trailing newline removed — no substantive change. |
| Cargo.lock | All leanVM crates re-pinned to 8fcbd779; Plonky3 re-pinned to 3f67d136; cascade bumps to spin (0.11→0.10), num-bigint (0.4.6→0.3.3 for mt-* crates), getrandom (0.4.2→0.3.4 for tempfile), and windows-sys (0.52/0.60→0.61.2) are consistent with the PR description. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["crates/common/crypto/Cargo.toml"] -->|"lean-multisig @ 8fcbd779"| B["leanEthereum/leanVM.git"]
A -->|"leansig_wrapper @ 8fcbd779"| B
B -->|"transitive dep"| C["Plonky3 @ 3f67d136\n(stable Rust compatible)"]
C -->|"uses"| D["spin 0.10.0"]
C -->|"uses"| E["num-bigint 0.3.3\n(mt-field, mt-koala-bear)"]
F["Makefile\nLEAN_SPEC_COMMIT_HASH"] -->|"30ffb6ca (2026-06-03)"| G["leanEthereum/leanSpec\n(lean-multisig-py v0.0.6)"]
G -.->|"locks same prover/verifier rev"| B
Reviews (1): Last reviewed commit: "chore: bump leanSpec pin to latest main ..." | Re-trigger Greptile
leanSpec main renamed fixture fields and typed the block proof: - Validator pubkey fields: attestationPubkey/proposalPubkey -> attestationPublicKey/proposalPublicKey - Attestation validatorId -> validatorIndex (steps and SSZ vectors) - signedBlock.proof is now a typed container (leanSpec #799) nesting the raw lean-multisig Type-2 wire one level deeper; re-wrap it into the SSZ-envelope form SignedBlock.proof stores. The flat shape is still accepted for older spec-assets simulators (Hive).
🗒️ Description / Motivation
Recent leanVM changes introduced performance improvements. The upstream repo was also renamed from
leanMultisigtoleanVM. The pin matches the exact leanVM rev that leanSpec uses, so fixtures and client use the same prover/verifier.What Changed
8fcbd779: the leanVM devnet5 rev that leanSpec main locks vialean-multisig-pyv0.0.6.leanEthereum/leanMultisigto the renamedleanEthereum/leanVM.3f67d136(the rev leanVM8fcbd779locks against). The floating Plonky3 HEAD otherwise resolved to a newer rev that requires the unstablemaybe_uninit_slicefeature and fails to build on stable.LEAN_SPEC_COMMIT_HASHin the Makefile to latest leanSpec main (30ffb6ca, 2026-06-03), which is what pulls inlean-multisig-pyv0.0.6.